u`
Ep.264uinterface04.csv

p.264 ̃C^[tFCX(VOj`̏ꍇ)FČf

E̓VOj`̒ۃoC^[tFCX邱Ƃł
ȄꍇAC^[tFCX^ƂQƕϐ`ėpƗǂ
EF C^[tFCX^ƂQƕϐ.\bh()

⑫Fp.264 interface04.cs

E005sځFpublic͕sv
E010sځFpublic͕sv

p.265 interface05.cs

//p.265 interface05.cs
using System;
interface IMas { //C^[tFCX@ułE܂v̒`
    void show(int i); //ۃ\bh@̒`
}
public interface IDa { //C^[tFCXAuEłv̒`
    void show(int i); //ۃ\bhA̒` @ƓVOj`
}
class MyClass : IMas, IDa { //C^[tFCX@ANX
    void IMas.show(int i) { //C^[tFCX@Ouۃ\bh@̃I[o[Chułv
        Console.WriteLine("i{0}ł", i);
    }
    void IDa.show(int i) { //C^[tFCXAOuۃ\bhÃI[o[Chuv
        Console.WriteLine("i{0}", i);
    }
}
class interface05 {
    public static void Main() {
        IMas im; //C^[tFCX@^̎Qƕϐ
        IDa id; //C^[tFCXA^̎Qƕϐ
        MyClass mc = new MyClass(); //C^[tFCX@ANX̃IuWFNg𐶐
        im = mc; //C^[tFCX@^̎Qƕϐɑ
        im.show(5); //ۃ\bh@̃I[o[ChułvĂ΂
        id = mc; //C^[tFCXA^̎Qƕϐɑ
        id.show(5); //ۃ\bhÃI[o[ChuvĂ΂
    }
}

AWKFp.265 interface05.cs

EC^[tFCXNX̃IuWFNǵAC^[tFCX^ɃLXg邱ƂŁAC^[tFCX^̎Qƕϐň
ÊƂpāAVvɂ悤
EȂALXg̗D揇ʂ͒Ⴍhbg̗D揇ʂ͍̂ŁAJbRŗD悳邱
EF ((C^[tFCX)Qƕϐ).\bh(,c)

쐬

//AWKFp.265 interface05.cs
using System;
interface IMas { //C^[tFCX@ułE܂v̒`
    void show(int i); //ۃ\bh@̒`
}
public interface IDa { //C^[tFCXAuEłv̒`
    void show(int i); //ۃ\bhA̒` @ƓVOj`
}
class MyClass : IMas, IDa { //C^[tFCX@ANX
    void IMas.show(int i) { //C^[tFCX@Ouۃ\bh@̃I[o[Chułv
        Console.WriteLine("i{0}ł", i);
    }
    void IDa.show(int i) { //C^[tFCXAOuۃ\bhÃI[o[Chuv
        Console.WriteLine("i{0}", i);
    }
}
class interface05 {
    public static void Main() {
        MyClass mc = new MyClass(); //C^[tFCX@ANX̃IuWFNg𐶐
        ((IMas)mc).show(5); //yύXzۃ\bh@̃I[o[ChułvĂ΂
        ((IDa)mc).show(5); //yύXzۃ\bhÃI[o[ChuvĂ΂
    }
}

p.266 C^[tFCX̌p

ENXNXpłƓlɁAC^[tFCXC^[tFCXpł
EɂAC^[tFCX̗hƂł
Ep{C^tF[X̒ۃóAhC^[tFCXɈp
E`F interface hC^[tFCX : {C^tF[X {c}
 pȂ̂ŁÅ{C^tF[Xw肷邱Ƃ͂łȂiɂ͂ȂȂj

p.266 interface06.cs

//p.266 interface06.cs
using System;
interface IInterface1 { //{C^tF[X
    void setdatano(int n); //ۃ\bh@
    void setdata(double data, int i); //ۃ\bhA
    double calcsum(); //ۃ\bhB
}
interface IInterface2 : IInterface1 { //hC^[tFCX
    //ɒۃ\bh@uvoid setdatano(int n);vpĂ
    //ɒۃ\bhAuvoid setdata(double data, int i);vpĂ
    //ɒۃ\bhBudouble calcsum();vpĂ
    double calcaverage(); //̃C^[tFCXƎ̒ۃ\bhC
}
class MyClass : IInterface2 { //hC^[tFCXNX
    double[] data; //^z̐錾
    bool bOK = false; //OKtOItɂĂ
    public void setdatano(int n) { //ۃ\bh@̃I[o[Ch
        data = new double[n]; //vfƂĎ^z𐶐
        bOK = true; //OKtOIɂ
    }
    public void setdata(double d, int i) { //ۃ\bhÃI[o[Ch
        if (!bOK) { //OKtOItł
            Console.WriteLine("z̏łĂ܂");
            return; //Ȃ
        }
        data[i] = d; //dvflAiYƂĔzɊi[
    }
    public double calcsum() { //ۃ\bhB̃I[o[Ch
        if (!bOK) { //OKtOItł
            Console.WriteLine("z̏łĂ܂");
            return -1.0; //Ȃ(̒lԂ)
        }
        double sum = 0.0; //v0ɂ
        for (int i = 0; i < data.Length; i++) { //SvfɂČJԂ
            sum += data[i]; //vɑ
        }
        return sum; //vԂ
    }
    public double calcaverage() { //ۃ\bhC̃I[o[Ch
        double sum = calcsum(); //vvZĂ
        return sum / data.Length; //vŊĕς𓾂ĕԂ
    }
}
class interface06 {
    public static void Main() {
        MyClass mc = new MyClass(); //hC^[tFCXNX̃IuWFNg𐶐
        int nNo; //͗p
        while (true) { //[v
            Console.Write("f[^---");
            string strno = Console.ReadLine();
            nNo = Int32.Parse(strno); //ϊ
            mc.setdatano(nNo); //f[^vfƂz𐶐
            for (int i = 0; i < nNo; i++) { //f[^ɂČJԂ
                Console.Write("data[{0}] = ", i); //Y\
                string strdata = Console.ReadLine();
                mc.setdata(double.Parse(strdata), i); //ɕϊĔzɊi[
            }
            Console.WriteLine("v = {0}", mc.calcsum());
            Console.WriteLine(" = {0}", mc.calcaverage());
            Console.WriteLine();
            Console.Write("܂(Y/N)---");
            string yn = Console.ReadLine();
            if (yn == "N" || yn == "n") {
                break;
            }
        }
    }
}

p.270iC^[tFCX̌pƖỎB؂j

EhC^[tFCX̒ۃoƓVOj`̉zoꍇAỎB؂ɂȂ
EāAnewL[[hOuāAỎB؂𖾎

p.270 interface07.cs

//p.270 interface07.cs
using System;
interface IMyInterface { //{C^tF[X
    void show1(); //ۃ\bh@
    void show2(); //ۃ\bhA
}
interface IMyInterface2 : IMyInterface { //hC^[tFCX
    //ɒۃ\bh@p邪AỎB؂̑ΏۂɂȂ
    new void show1(); //ۃ\bh@̖OB؂钊ۃ\bh@'
    //ɒۃ\bhAp
    void show3(); //ۃ\bhB
}
class MyClass : IMyInterface2 { //hC^[tFCXNX
    public void show1() { //ۃ\bh@'̃I[o[Ch
        Console.WriteLine("show1");
    }
    public void show2() { //ۃ\bhÃI[o[Ch
        Console.WriteLine("show2");
    }
    public void show3() { //ۃ\bhB̃I[o[Ch
        Console.WriteLine("show3");
    }
}
class interface07 {
    public static void Main() {
        MyClass mc = new MyClass(); //hC^[tFCXNX
        mc.show1(); //ۃ\bh@'̃I[o[ChĂ
        mc.show2(); //ۃ\bhA ̃I[o[ChĂ
        mc.show3(); //ۃ\bhB ̃I[o[ChĂ
    }
}

AWKFp.270 interface07.cs

EhC^[tFCXɂāA{NX̒ۃ\bhƓVOj`Ŗ߂l^قȂ钊ۃ\bh`ł
EA̔hC^[tFCXNX̓G[ɂȂĂ܂
E̗Rl悤

쐬

//AWKFp.270 interface07.cs
using System;
interface IMyInterface { //{C^tF[X
    void show1(); //ۃ\bh@
    void show2(); //ۃ\bhA
}
interface IMyInterface2 : IMyInterface { //hC^[tFCX
    //ɒۃ\bh@p邪AỎB؂̑ΏۂɂȂ
    new void show1(); //ۃ\bh@̖OB؂钊ۃ\bh@'
    //ɒۃ\bhAp
    new int show2(); //yǉzۃ\bhAƓVOj`߂l^قȂ钊ۃ\bhA'
    void show3(); //ۃ\bhB
}
class MyClass : IMyInterface2 { //hC^[tFCXNX
    public void show1() { //ۃ\bh@'̃I[o[Ch
        Console.WriteLine("show1");
    }
    public void show2() { //ۃ\bhÃI[o[Ch
        Console.WriteLine("show2");
    }
    public int show2() { //yǉzۃ\bhA'̃I[o[Ch˖߂l^قȂ邪VOj`Ȃ̂ŃG[
        Console.WriteLine("show2");
    }
    public void show3() { //ۃ\bhB̃I[o[Ch
        Console.WriteLine("show3");
    }
}
class interface07 {
    public static void Main() {
        MyClass mc = new MyClass(); //hC^[tFCXNX
        mc.show1(); //ۃ\bh@'̃I[o[ChĂ
        mc.show2(); //ۃ\bhA ̃I[o[ChĂ G[ɂȂ
        mc.show3(); //ۃ\bhB ̃I[o[ChĂ
    }
}

p.272iC^[tFCX̌pƖỎB؂ƖIj

EỎB؂sĂhC^[tFCXł́AhNX̏ꍇƓlɁAɉB؂ꂽoI[oChł
E(baseL[[hł͂Ȃ)ÃC^[tFCXNX鎞ɓVOj`ꍇƓlɁuC^[tFCX.vOuΗǂ
EāÃNX̃CX^Xp鎞ɁAC^[tFCX^ƂQƕϐ`ėpƗǂ

p.272 interface08.cs

//p.272 interface08.cs
using System;
interface I1 { //{C^[tFCX
    void show1(); //ۃ\bh@
    void show2(); //ۃ\bhA
}
interface I2 : I1 { //hC^[tFCX
    //Ɂuvoid show1();v/ۃ\bh@p邪ỎB؂̑ΏۂɂȂ
    new void show1(); //ۃ\bh@̖ỎB؂钊ۃ\bh@'
    //Ɂuvoid show2();v/ۃ\bhAp
}
class MyClass : I2 { //hC^[tFCXNX
    void I1.show1() { //{C^[tFCXOuĒۃ\bh@̃I[oCh
        Console.WriteLine("I1.show1");
    }
    void I2.show1() { //hC^[tFCXOuĒۃ\bh@'̃I[oCh
        Console.WriteLine("I2.show1");
    }
    public void show2() { //{C^[tFCX̒ۃ\bhÃI[oCh
        Console.WriteLine("show2");
    }
}
class interface08 {
    public static void Main() {
        MyClass mc = new MyClass(); //hC^[tFCXNX̃IuWFNg𐶐
        I1 i1; //{C^[tFCX^ƂQƕϐ@
        I2 i2; //hC^[tFCX^ƂQƕϐA
        mc.show2(); //{C^[tFCX̒ۃ\bhÃI[oChĂ
        i1 = mc; //{C^[tFCX^ƂQƕϐ@ɃNX̃IuWFNg̎QƂ
        i1.show1(); //{C^[tFCXɑΉ钊ۃ\bh@̃I[oChĂ
        i2 = mc; //hC^[tFCX^ƂQƕϐAɃNX̃IuWFNg̎QƂ
        i2.show1(); //hC^[tFCXɑΉ钊ۃ\bh@'̃I[oChĂ
        i2.show2(); //mc.show2()Ɠ
    }
}

AWKFp.272 interface08.cs

EӖÂ炢̂ŁALɒučl悤
@Einterface I1  interface skyfly //ׂ
@@Evoid show1(); void howtofly() //ѕ\ipj
@@Evoid show2(); void sound() //Ԏ̉\
@Einterface I2  interface spacefly //Fׂ(ׂp)
@@Evoid show1(); void howtofly()//ѕ\iFpj
@Eclass MyClass  class SpaceDragon : spacefly //FׂF
@Eclass interface08 Lɍ킹ăAW悤

쐬

//AWKFp.272 interface08.cs
using System;
interface skyfly { //{C^[tFCXuׂv
    void howtofly(); //ۃ\bh@ѕ\ipj
    void sound(); //ۃ\bhAԎ̉\
}
interface spacefly : skyfly { //hC^[tFCXuFׂ(ׂp)v
    //Ɂuvoid howtofly();v/ۃ\bh@p邪ỎB؂̑ΏۂɂȂ
    new void howtofly(); //ۃ\bh@̖ỎB؂钊ۃ\bh@'ѕ\iFpj
    //Ɂuvoid sound();v/ۃ\bhAp
}
class SpaceDragon : spacefly { //hC^[tFCXuFׂ(ׂp)vNXuFv
    void skyfly.howtofly() { //ۃ\bh@̃I[oCh
        Console.WriteLine("ŋC󂯂Ĕ"); //ѕ\ipj
    }
    void spacefly.howtofly() { //ۃ\bh@'̃I[oCh
        Console.WriteLine("GlM[oĔ"); //ѕ\iFpj
    }
    public void sound() { //{C^[tFCX̒ۃ\bhÃI[oCh
        Console.WriteLine("M["); //Ԏ̉
    }
}
class interface08 {
    public static void Main() {
        SpaceDragon Veldra = new SpaceDragon(); //hC^[tFCXNX̃IuWFNg𐶐
        skyfly Skyfling; //{C^[tFCX^ƂQƕϐ@
        spacefly Spaceflying; //hC^[tFCX^ƂQƕϐA
        Veldra.sound(); //{C^[tFCX̒ۃ\bhÃI[oChĂ
        Skyfling = Veldra; //{C^[tFCX^ƂQƕϐ@ɃNX̃IuWFNg̎QƂ
        Skyfling.howtofly(); //{C^[tFCXɑΉ钊ۃ\bh@̃I[oChĂ
        ((skyfly)Veldra).howtofly(); //L͂ĂOK
        Spaceflying = Veldra; //hC^[tFCX^ƂQƕϐAɃNX̃IuWFNg̎QƂ
        Spaceflying.howtofly(); //hC^[tFCXɑΉ钊ۃ\bh@'̃I[oChĂ
        ((spacefly)Veldra).howtofly(); //L͂ĂOK
        Spaceflying.sound(); //Veldra.sound()Ɠ
    }
}

p.274 KP qg

Eۃ\bh int Count(string str) C^[tFCX`悤
ẼC^[tFCXNX`悤
ẼNX̒Œۃ\bhI[o[ChāAstrœ镶̒(p.73)ԂLq
EspNXMain\bhLqAL̃NX̃CX^X𐶐ACount\bhɕ^悤
ECount\bh̖߂l\ĊmF悤

쐬

//p.274 KP
using System;
interface Countable { //C^[tFCXuv
    int Count(string str); //ۃ\bhu̕Ԃv
}
class CountStrings : Countable { //C^[tFCXNXu镶v
    public int Count(string str) { //ۃ\bhu̕ԂṽI[oCh
        return str.Length; //Ԃ
    }
}
class ex1001 {
    public static void Main() {
        CountStrings wordcount = new CountStrings(); //C^[tFCXNX̃IuWFNg𐶐
        string word = "ABC";
        Console.WriteLine("{0}{1}ł", word, wordcount.Count(word));
    }
}

p.254 KP qg

Ez\bhCalću2int^̈ƂA̘aԂv̂AVOj`
@int Calc(int , int );
ENXA1͉z\bhCalcA+Ԃ
ENXA2̓NXA1p
ENXA2͌p\bhCalcI[o[ChA-Ԃ
EMainł́F
@@ NXA2̃CX^X𐶐
@A @̎Qƕϐ.Calc\bh̎sʂ\(FCalc(5, 8))  ɂȂ
@B NXA1^̎Qƕϐ@̎Qƕϐŏ
@C B̎Qƕϐ.Calc\bh̎sʂ\(FCalc(5, 8))  ͂荷ɂȂ(Ԑ)

쐬

//p.254 KP
using System;
class A1 { //{NX
    public virtual int Calc(int a, int b) { //I[oCh\ȉz\bh
        return a + b; //aԂ
    }
}
class A2 : A1 { //hNX
    public override int Calc(int a, int b) { //I[oCh\bh
        return a - b; //Ԃ
    }
}
class ex0901 {
    public static void Main() {
        A2 a2 = new A2(); //hNXA2̃CX^X𐶐
        Console.WriteLine(a2.Calc(5, 8)); //I[oCh\bhs
        A1 a1 = a2; //A1^ϐa1錾āBA2ւ̎Qa2
        Console.WriteLine(a1.Calc(5, 8)); //z\bhsĂc
    }
}

ȏ
